Emberveil source

game/2006Scape Client/src/main/java/RSFrame.java

// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 

import java.awt.*;

final class RSFrame extends Frame {

	public RSFrame(RSApplet applet) {
		rsApplet = applet;

		setTitle(ClientSettings.SERVER_NAME + " World: " + ClientSettings.SERVER_WORLD + ((ClientSettings.SERVER_IP.equals("localhost") || ClientSettings.SERVER_IP.equals("127.0.0.1")) ?  " [Local]" : ""));
		this.setResizable(true);
		this.setBackground(Color.BLACK);

		this.setLayout(new BorderLayout());
		this.add(applet, BorderLayout.CENTER);
		MenuBar menuBar = new MenuBar();
		Menu emberveil = new Menu("Emberveil");
		MenuItem worldMap = new MenuItem("World Map (Ctrl+M)");
		worldMap.addActionListener(e -> EmberveilWorldMap.open(this));
		emberveil.add(worldMap);
		menuBar.add(emberveil);
		Menu view = new Menu("View");
		MenuItem zoomIn = new MenuItem("Zoom in (Page Up)");
		zoomIn.addActionListener(e -> changeZoom(-1));view.add(zoomIn);
		MenuItem zoomOut = new MenuItem("Zoom out (Page Down)");
		zoomOut.addActionListener(e -> changeZoom(1));view.add(zoomOut);
		MenuItem resetZoom = new MenuItem("Reset zoom");
		resetZoom.addActionListener(e -> Game.zoom=3);view.add(resetZoom);
		view.addSeparator();
		MenuItem fullscreen = new MenuItem("Fullscreen / Windowed (F11)");
		fullscreen.addActionListener(e -> toggleFullscreen());view.add(fullscreen);
		menuBar.add(view);
		setMenuBar(menuBar);
		this.pack();
		setMinimumSize(new Dimension(400,300));

		this.setLocationRelativeTo(null);
		this.setVisible(true);
		this.toFront();
		this.transferFocus();
	}

	private final RSApplet rsApplet;
	private Rectangle windowBounds;
	private MenuBar windowMenu;
	private boolean fullscreen;
	boolean isFullscreen(){return fullscreen;}
	private void changeZoom(int amount){if(rsApplet instanceof Game)((Game)rsApplet).changeCameraZoom(amount);}
	void toggleFullscreen() {
		if(!EventQueue.isDispatchThread()){EventQueue.invokeLater(()->toggleFullscreen());return;}
		boolean visible=isVisible();
		if(!fullscreen) {
			windowBounds=getBounds();windowMenu=getMenuBar();
			Rectangle screen=getGraphicsConfiguration().getBounds();
			dispose();setMenuBar(null);setUndecorated(true);setBounds(screen);fullscreen=true;
		} else {
			dispose();setUndecorated(false);setMenuBar(windowMenu);setBounds(windowBounds);fullscreen=false;
		}
		setVisible(visible);rsApplet.requestFocus();
	}

}